import { Injectable } from '@nestjs/common';
import { createHash } from 'crypto';

@Injectable()
export class CryptoUtil {
  /**
   * 加密登录密码
   * @param password 原始密码
   * @returns 加密后的密码
   */
  encryptPassword(password: string): string {
    return createHash('sha256').update(password).digest('hex');
  }

  /**
   * 检查密码是否匹配
   * @param password 原始密码
   * @param encryptedPassword 加密后的密码
   * @returns 是否匹配
   */
  checkPassword(password: string, encryptedPassword: string): boolean {
    const currentPass = this.encryptPassword(password);
    return currentPass === encryptedPassword;
  }

  /**
   * 验证密码（与checkPassword方法功能相同，只是名称不同）
   * @param password 原始密码
   * @param encryptedPassword 加密后的密码
   * @returns 是否匹配
   */
  verifyPassword(password: string, encryptedPassword: string): boolean {
    return this.checkPassword(password, encryptedPassword);
  }
}
